/*** 前端封装API接口模块 ：购物车(Cart) 模块
 */
import http from "@/utils/request";

//===============================
//1. 购物车列表（获取当前用户的所有记录）
// 后端接口：@GetMapping("/listByMy") → 地址正确，方法正确
export function getCartListAPI() {
  return http.request({
    url: "cart/listByMy",  // 后端存在此地址，正确
    method: "get",         // 后端用@GetMapping，方法正确
  });
}

//==============================
//2. 添加购物车
// 后端接口：@PostMapping("/add") → 地址正确，方法正确
export function addCartAPI(params) {
  return http.request({
    url: "cart/add",       // 后端存在此地址，正确
    method: "post",        // 后端用@PostMapping，方法正确
    data: params,          // 参数放body，正确（匹配@RequestBody）
  });
}

//=============================
//3. 删除购物车（批量删除）
// 后端接口：@DeleteMapping("/deleteBatch") → 地址和方法需修改
// 原前端地址"cart/delete"错误，方法get错误
export function deleteCartItemAPI(ids) {
  return http.request({
    url: "cart/deleteBatch",  // 改为后端批量删除地址
    method: "delete",         // 后端用@DeleteMapping，方法改为delete
    data: { ids: ids.split(',') }  // 后端参数是BatchIdsForm（含ids数组），需转数组
  });
}

//===========================
//4. 修改购物车条目中的购买数量 
// 后端无单独更新数量的接口，需复用 @PostMapping("/update")
// 原前端地址"cart/updatecount"错误，方法get错误
export function updateCartCountAPI(params) {
  // params需包含：id（购物项ID）、count（新数量）
  return http.request({
    url: "cart/update",       // 复用更新接口
    method: "post",           // 后端用@PostMapping，方法改为post
    data: params,             // 参数放body（匹配@RequestBody CartUpdateForm）
  });
}

//===============================
//5. 修改购物车条目中的是否勾选 
// 后端无单独更新勾选的接口，需复用 @PostMapping("/update")
// 原前端地址"cart/updatechecked"错误，方法get错误
export function updateCartCheckedAPI(params) {
  // params需包含：id（购物项ID）、isChecked（是否勾选，注意参数名是isChecked而非is_checked）
  return http.request({
    url: "cart/update",       // 复用更新接口
    method: "post",           // 后端用@PostMapping，方法改为post
    data: {
      id: params.id,
      isChecked: params.is_checked  // 后端参数名是isChecked，需转换
    }
  });
}

//=============================
//6. 购物车列表（勾选商品） 
// 后端接口：@GetMapping("/listIsCheckedByMy") → 地址需修改
// 原前端地址"cart/listchecked"错误
export function getCartListCheckedAPI() {
  return http.request({
    url: "cart/listIsCheckedByMy",  // 改为后端已有的勾选列表地址
    method: "get",                  // 后端用@GetMapping，方法正确
  });
}

//========================
//7. 清空购物车
// 后端接口：@DeleteMapping("/deleteAllByMy") → 地址和方法需修改
// 原前端地址"cart/deleteAll"错误，方法get错误
export function deleteCartAllAPI() {
  return http.request({
    url: "cart/deleteAllByMy",  // 改为后端清空地址
    method: "delete",           // 后端用@DeleteMapping，方法改为delete
  });
}

//========================
//8. 全选或全不选 
// 后端接口：@PostMapping("/updateIsCheckedAllByMy/{isChecked}") → 地址和方法需修改
// 原前端地址"cart/updatecheckedAll"错误，方法get错误
export function updateCartCheckedAllAPI(is_checked) {
  return http.request({
    url: `cart/updateIsCheckedAllByMy/${is_checked}`,  // 改为后端全选地址（路径参数）
    method: "post",                                    // 后端用@PostMapping，方法改为post
  });
}